// 对象类型：接口
// 描述对象的形式（对象中有什么属性，属性类型是啥）

// 定义接口：定义对象的类型
interface Person {
	// 必填属性
	username: string;
	// 只读属性
	readonly password: string;
	sex: number | string;
	// 可选属性
	address?: string;
	// 任意属性(很少使用)
	[key: string]: any;
}

const user: Person = {
	username: "",
	password: "",
	sex: "男",
	// address: "深圳",
	a: 1,
	b: true,
	[Symbol()]: 111,
};

user.username = "admin";
// user.password = "111111"; // 报错

const boy: Person = {
	username: "",
	password: "",
	sex: "男",
};

const girl: {
	username: string;
	password: string;
} = {
	username: "",
	password: "",
};

// 类型推论
const obj = {
	username: "",
	password: "",
};

// obj.a = 111; // 报错
